#pragma once
#include "pch/std_iostream.h"
#include "coordinate.hpp"

namespace BaseGeo {
    class Point {
    public:
        double x, y, z;
        Point();
        Point(const double x, const double y);
        Point(const double x, const double y, const double z);
        bool operator<(const Point& other) const;
        bool operator==(const Point& other) const;
        Point operator+(const Coordinate& shift) const;
        Point& operator+=(const Coordinate& shift);
    };

    const Point origin_point = Point(0.0, 0.0, 0.0);

    double Distance(const Point& from, const Point& to);
}

std::ostream& operator<<(std::ostream& stream, const BaseGeo::Point& point);